home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir42
/
eaglev1s.zip
/
READ.ME
< prev
Wrap
Text File
|
1993-09-09
|
17KB
|
421 lines
=========
= EAGLE =
=========
Unexpected Condition Tracking and Analysis Program for Paradox Database.
Version 1s (shareware version)
Thanks for giving Eagle a try. We hope using the single-user version will
convince you to purchase the network/developers version. This shareware version
does not have network support and is not licensed for distribution with
commercial applications. Purchasing the network/developer version of Eagle
provides network support for Netbios and Novell networks (Banyan and LAN
Manager soon) and gives the developer license to include Eagle for use with his
or her applications without royalties.
Rowe Technology
CompuServe: 72230,3014
Internet: rrowe@halcyon.com
206-869-7693 (8am-8pm PST)
Building D, #2021
4250 W. Lake Sammamish Pkwy., NE
Redmond, WA 98052
WHAT IS EAGLE?
--------------
Eagle is an executable program which detects whether Borland's Paradox database
program crashed from an Unexpected Condition or Refresh Exception. It keeps a
log file of the user name, date and time, Unexpected Condition error message,
and Eagle's own interpretation of that (undocumented) error message. This makes
tracking (and hopefully correcting) Paradox Unexpected Conditions possible.
Eagle is not a TSR or NLM. The only requirement is that Eagle must be loaded
immediately following Paradox (or Runtime) in a batch file. Eagle is compatible
with all DOS versions of Paradox 3.0 or higher and Runtime, running single-user
or on Novell or NetBios (Lantastic) networks.
When Eagle detects an Unexpected Condition it writes an unexpected condition
log file, PDOXUC.LOG. This file may be used by itself or in conjunction with
PDOXINFO.ZZZ, a post mortem dump file created by Paradox using the undocumented
-DIAG command line switch. Unlike -DIAG, Eagle can specify the directory to
contain PDOXUC.LOG and captures the user's name and time/date of the crash.
ANSWERS TO QUESTIONS RECENTLY ASKED ABOUT EAGLE:
------------------------------------------------
1. Regarding how Eagle works: Does Eagle look for a PDOXINFO.ZZZ file upon exit
from Paradox?
No, Eagle is not looking for a ZZZ file. In fact, it isn't even aware of ZZZ
files. Eagle looks at that state of the machine after Paradox terminated. That
is why it must follow immediately in the batch file.
1
2. With regard to Refresh Exceptions: How much info is provided and does that
info truly lead to a resolution of the problem?
Eagle keeps an itemized log of UC's and RE's in one place. It keeps a different
set of information from what is in PDOXINFO.ZZZ. On a network, a UC or RE can
cascade across workstations obscuring the original cause. Figuring out whose
private directory to retrieve which ZZZ file from can be extremely difficult
for the network administrator. Eagle can provide a chronological guide to your
ZZZ files. Or, if you don't have ZZZ files it will provide your only guide to
the problem.
3. You say that the log file contains "Eagle's own interpretation" of the error
message. How detailed does this get?
A typical PDOXUC.LOG file entry is in this form:
Netware:Robin (SW) Wed Mar 17 13:06:20 1993
Unexpected condition: File TEMP.DB was deleted -- Leaving Paradox
Hint: Table deleted by user shelled to DOS.
The first line gives the network type (Netware or Netbios) and the user's name
according to that network. The (SW) indicates that SHARE.EXE and Windows were
loaded. The second line is the UC message as it appeared on the user's screen.
The third line is a typical cause for that particular error. Many obscure UC
messages are unknown to Eagle and will not have an interpretation..
4. What are the major benefits of Eagle to Paradox and Runtime application
developers?
It frees you from being at the mercy of your users to report Unexpected
Condition errors. You may be surprised how many more UC's are discovered with
them being logged automatically.
Since Eagle creates a UC log file in a specified directory, your application
startup code can use the existence of that file as a flag that indicates the
application may be unstable.
The PDOXUC.LOG file can be easily imported into a Paradox table for statistical
analysis by UC message, user, date, or time. Discover long term patterns.
Eagle provides a simple English error message, immediately interpreting common
UC messages. The alternative is to ask Borland the meaning of the UC message,
which may take weeks or even longer for a useful response.
5. Will Eagle work on Banyan or IBM LAN Server?
It will not be able to detect the network or retrieve the network user name.
This will decrease Eagle's utility, but it will still function otherwise.
Banyan and LanMan support are under development.
6. Will it work in the OS/2 DOS box?
It hasn't been tested in that environment.
2
A SAMPLE UNEXPECTED CONDITION REPORT:
-------------------------------------
Here is a list of UC's produced by importing an Eagle PDOXUC.LOG file into a
Paradox table. This is from a mid-size Paradox network site collected over a
three month period:
UC Message Count
---------------------------------------------------------------- ------
Corrupt memo block -- Leaving Paradox 3
File CHANGED.DB was deleted -- Leaving Paradox 1
File delete (I117) - j:\PDOXDATA\CTS\TEST.DB (code 2) -- L 1
File open (I104) - S:PARADOX.AUX (code 4) -- Leaving Parad 1
File open (I104) - T:PARADOX.AUX (code 4) -- Leaving Parad 4
File open (I104) - j:\pdoxdata\cts\Info.F2 (code 4) -- Lea 1
File open (I104) - j:\pdoxdata\home\glay\INIT.SC (code 3) 1
File open (I104) - j:\pdoxdata\home\rich\Newelig.WQ1 (code 1
File read (I113) -- Leaving Paradox 1
GP 0000 AT PARADOX:14:20f6 -- Leaving Paradox 4
GP 0000 AT PARADOX:17:2512 -- Leaving Paradox 1
GP 0000 AT PARADOX:20:00cc -- Leaving Paradox 1
GP 0000 AT YOMDP:02:30e8 -- Leaving Paradox 4
GP 0000 AT YOMDP:02:30ee -- Leaving Paradox 4
GP 0000 AT YOMDP:02:3177 -- Leaving Paradox 1
GP 0028 AT PARADOX:25:19c8 -- Leaving Paradox 1
GP 0148 AT PARADOX:19:0704 -- Leaving Paradox 1
.
.
.
Link range -- Leaving Paradox 3
Locking error (byte lock failure #1) B -- Leaving Paradox 1
Locking error (byte lock failure #1) J:\PDOXDATA\CTS\ACTIV 4
Locking error (byte lock failure #1) J:\PDOXDATA\CTS\BIOS9 1
Locking error (byte lock failure #1) J:\PDOXDATA\CTS\CREDI 23
.
.
.
Locking error (read failed) (null) -- Leaving Paradox 4
Locking error (read failed) A:\PARADOX.DIR -- Leaving Para 1
Locking error (read failed) J:\PDOXDATA\HOME\DONNA\PARADOX 1
.
.
.
Memo file creation failure -- Leaving Paradox 11
Not enough memory to complete operation -- Leaving Paradox 6
Table Buffer (L11) -- Leaving Paradox 3
delete - z:\CLIP\RICH\TEST\PARADOX.LCK (code 0) -- Leaving 1
deregf - c:\bad1022\PARADOX.DIR (code 0) -- Leaving Parado 1
.
.
.
imsizchange -- Leaving Paradox 1
noLockSeq - J:\PDOXDATA\CTS\ACTIVITY.DB (code 0) -- Leavin 5
noLockSeq - J:\PDOXDATA\CTS\ACTIVITY.DB (code 2) -- Leavin 1
3
noLockSeq - J:\PDOXDATA\CTS\ORDERS.DB (code 0) -- Leaving 13
noLockSeq - J:\PDOXDATA\CTS\ORDERS.DB (code 2) -- Leaving 1
noLockSeq - J:\PDOXDATA\CTS\PRODUCT.DB (code 5) -- Leaving 1
======
274
COPYRIGHT/LICENSING:
--------------------
The Eagle program is Copyright 1992-1993 Rowe Technology. All rights reserved.
This shareware version of Eagle, which does not include network support or
distribution licensing may be placed on an electronic bulletin board system
(BBS) and otherwise made available to the public. The network/developer version
of Eagle is currently $79 (subject to change). Additional charge for shipment
and taxes to foreign countries.
INSTALLATION:
-------------
Copy the files (only Eagle.exe is necessary) from the diskette to your Paradox
directory, or to a separate directory if you prefer.
COPY A:\*.* C:\PDOX40
Modify the included PDOX40.BAT file or create a batch file to load Paradox with
Eagle immediately following, similar to this:
@ECHO OFF
ECHO Loading Paradox 4.0
C:
CD\PDOX40
PARADOX -DIAG %1 %2 %3
IF ERRORLEVEL 1 goto problem
EAGLE.EXE
goto quit
:problem
EAGLE.EXE
IF ERRORLEVEL 1 goto quit
ECHO Unexpected condition: "UNKNOWN ERROR"
EAGLE.EXE
:quit
Starting in Paradox 4.0, Borland made changes which make it more difficult for
Eagle to capture some errors (fortunately rare, such as UC:#449, can not access
paradox.msg file). However, starting in Paradox 4.0, a DOS ERRORLEVEL is set if
Paradox fails. Under versions of Paradox prior to 4.0 all that is necessary is
to simply call Eagle immediately following Paradox. Using the ERRORLEVEL
testing shown above is unnecessary, but does no harm with earlier versions.
Using the ERRORLEVEL test above allows Eagle to log errors which Paradox has
"cleaned up" to be undetectable.
UNEXPECTED CONDITION, WHAT NOW?
-------------------------------
4
Unexpected conditions can be extremely difficult to track down and correct. As
with any problem, the first thing to do is try the obvious.
Steps to solve a Paradox Unexpected Condition problem:
1. Kick all Paradox users off the system. Anyone left on the system may crash
if you start deleting Paradox files from DOS.
2. Delete all Paradox.net files. This file contains the count of the users
logged on the system. It has "slots" into which serial numbers are inserted by
each user logging into Paradox. Quattro Pro users also use this file if
accessing Paradox tables. It can become corrupted. Paradox will create a new
one that isn't corrupted if you delete this one. Generally, there should only
be one net file on a system.
3. Delete all Paradox.lck files. Paradox should delete all lck files when as
users exit the system. Any that are left over are corrupt and should be
deleted.
4. Rebuild all tables. The TUtility program included with Paradox can diagnose
and repair most tables that have become corrupted (generally by a power
interruption or rebooting the machine while a table is open). The command line
TUTILITY -REBUILD -ALL will verify all tables in the current directory and
attempt repair on those found bad.
5. Sometimes a table is damaged beyond repair. You better have backups.
6. Sometimes TUtility thinks a table is ok which is actually bad. This was more
of a problem in versions of Paradox prior to 4.0. In Paradox, export the table
to an ASCII delimited file, empty the table, and import the data back in to it.
7. If you are lucky, what happened was a user turned off their machine with a
table open and now that it is repaired you won't have further trouble.
8. Eagle may have captured the error that occurred and have hints for its
diagnosis or correction. Look in the Pdoxuc.log file for help from Eagle.
9. If you also took the precaution of loading Paradox with the -diag command
line switch you may have a pdoxinfo.zzz file. See the next section for an
explanation of the contents of this file.
10. You may have network or hardware problems. Round up the usual suspects: bad
NIC, bad cable, bad SIMM, bad hard drive, wrong NIC dip settings, etc. Don't be
surprised if Paradox is the first program to fail on a system. Paradox works
resources very hard. The culprit may be your system even though other software
appears to function properly. Check your hardware and OS software settings.
Make sure that users have the necessary rights, particularly if you have set
limits on disk space usage.
One trick is to set up TUtility to run continuously in an endless batch file.
Make a batch file called TEST.BAT like this:
TUTILITY -VERIFY -ALL
5
TEST.BAT
With all other Paradox users off the system leave this running on the suspect
machine overnight. If it is still running normally in the morning your hardware
and network is probably ok.
11. Are you using the most stable version of Paradox available?
12. Are you using the most stable settings for the version of Paradox you are
using?
Turn off network refresh (using the Custom script to modify Paradox.cfg), set
the sort order to ASCII, make sure each user has their own Paradox private
directory. Watch out for network users who can log on more than once from
multiple machines.
13. Is there anything unusual about your setup? If you haven't solved the
problem by now you may be facing a difficult chore. A divide and conquer
approach is necessary. Strip out everything unnecessary from the system. Empty
your TSR's, communication programs, and so forth out of the autoexec.bat and
config.sys files. If you have a machine that you suspect, unplug it from the
network.
14. Your system may be unstable in a way that you can't track down. Doing a
cleanup of net and lck files each weekend is a pain but may keep you going
until you can uncover the problem or a newer version of Paradox comes out.
15. The numbered error messages such as UC:#359, UC:#361, and UC:#449 mean
that Paradox is unable to access its Paradox.msg file. This is often a
defective network. If this doesn't seem to be the case, try putting the
Paradox.msg file on the local hard drives and setting the search path of the OS
to find the local copy. You may get a more informative error message if Paradox
can access this file which contains the error messages (among many other
things). It may also improve network performance.
If as an experiment you would like to deliberately create a numbered error
message, do this:
a. Copy Paradox.msg onto a floppy disk.
b. Temporarily rename Paradox.msg to something else.
c. Issue this DOS command:
APPEND A:\ /X:ON
d. Load Paradox. It will access the Paradox.msg on the floppy.
e. CoEdit a table (or begin some other operation).
f. Pop open the drive door on the floppy.
g. Press [F2].
To undo, simply reverse these steps and issue this DOS command:
APPEND ;
Depending on what you are doing when you pop the drive door, this technique can
lock up your computer. You may have to reboot to regain control.
USING -DIAG:
6
------------
There is an undocumented command line switch for Paradox which will create a
post mortem dump file if Paradox has an Unexpected Condition. There appears to
be no overhead or penalty for running this switch. Many developers use -DIAG
routinely in their shipping applications and rely on it to help diagnose
Unexpected Conditions. Borland says that this feature is "officially"
undocumented and for their use only. This means Borland provides no technical
support for it, and it doesn't always report accurately.
When loaded with the -DIAG command line switch, Paradox will create a
PDOXINFO.ZZZ file after an Unexpected Condition. In Paradox 4.0 this file will
be located in the user's private directory. For prior versions of Paradox it
will be located in the work directory. Under Paradox 4.0, the format of this
file changed slightly, and it is also generated if the PARADOX.CFG file is
changed.
Paradox version 4.0 PDOXINFO.ZZZ files have the following sections:
1. UC message: This Unexpected Condition message is usually, but not always,
the same as the UC message displayed on the screen when Paradox crashes. Either
the -DIAG or the real time message may be the more useful message of the two.
2. Version: The exact version of Paradox.
3. Memory utilization.
4. Network info.
5. Buffer utilization.
6. Registered files with lock status.
7. Procedure list.
8. Script 'File' with location in script where Paradox failed. This is where
you will generally want to start your diagnosis. The 'Line' is the line number
and the 'Offset' is how many characters into the file (what word) your script
crashed on. This information may or may not be accurate.
9. Where: Procedure tree.
10. Variable List: Every variable name ever defined whether in scope or not.
COPYRIGHT 1993 Rowe Technology
7